{{tag>Disco Bionic Xenial BROUILLON}}
----
{{:xampp:xampp-logo.png|}}
====== XAMPP : un serveur LAMP (Apache + MariaDB + PHP + Perl) ======

Le paquet open source **XAMPP** est un serveur LAMP complet et préconfiguré. Il contient :
  * un serveur HTTP **Apache**
  * une base de données **MariaDB**
  * **PHP**
  * **Perl**
  * et un serveur FTP : **ProFTPd**.
{{ :xampp:xampp-19.04-03.png?400 |}}

XAMPP est très pratique pour créer un serveur local de développement : il fournit au néophyte un serveur de test en quelques clics, sans avoir à choisir ni à connaître les différents services à installer.

Il est multiplateforme : il existe pour Linux, Windows et OS X

Tout est installé de façon conjointe avec les emplacements et autorisations qui vont bien.

<note important>
**__Remarque préliminaire importante__** : ne demandez pas à XAMPP ce pour quoi il n'est pas fait !

XAMPP n'est __**pas un serveur de production** mais un petit serveur local perso__. Pour cet usage, il est parfait.

**Pour un serveur de production définitif, mieux vaut [[:lamp|LAMP]]** qui s'installe via les dépôts, plus riche de possibilités et de réglages, en particulier pour la sécurité.

Cependant, le serveur XAMPP installe des valeurs sûres :
  * [[:apache2|Apache 2]],
  * [[:mariadb|MariaDB]] avec [[:phpmyadmin|phpMyAdmin]],
  * [[:sqlite|SQLite]]
  * [[:php|PHP]],
  * Perl,
  * [[:proftpd|ProFTPD]]
  * et de nombreuses bibliothèques

Les sites qui fonctionnent sur XAMPP fonctionneront donc sur LAMP : il suffit de copier le répertoire concerné et éventuellement de déplacer la base de données. A partir de là, vous pourrez mettre en place les réglages.

Si vous êtes curieux, vous pouvez cependant modifier XAMPP moyennant quelques "bidouilles" et une bonne connaissance de sa structure.

Mais __vous en apprendrez davantage en mettant en place un serveur LAMP et un serveur FTP ...__
</note>
===== Pré-requis =====

  * Une connexion internet

===== Installation =====

Tout XAMPP tient en un seul répertoire : **/opt/lampp**.

Son installation est donc d'une extrême simplicité (de même que sa désinstallation = supprimer le répertoire **/opt/lampp**).

Sur la page [[https://www.apachefriends.org/fr/index.html]], choisissez la version 32 ou 64 bits selon votre système d'exploitation Linux.

Modifiez les autorisations du programme d'installation et lancez-le en mode super-utilisateur :
<code>
cd répertoire/de/téléchargement/
sudo chmod +x xampp-linux-*-installer.run
sudo ./xampp-linux-*-installer.run
</code>
{{ :xampp:xampp-19.04-01.png?400 |}}

Acceptez toutes les étapes en cliquant sur **Next** ; pour la dernière fenêtre, cliquez sur **Finish** -> le panneau de contrôle de XAMPP démarre :
{{ :xampp:xampp-19.04-02.png?400 |}}

Ouvrez l'onglet **Manage Servers** et cliquez sur **Start All** pour démarrer les serveurs :
{{ :xampp:xampp-19.04-03.png?400 |}}

<note tip>Pour que Xampp se lance au démarrage, lancez dans un terminal :
<code>sudo ln -s /opt/lampp/lampp /etc/init.d/lampp
sudo update-rc.d lampp defaults
</code></note>

Au redémarrage, XAMPP sera démarré.

<note>
Pour info, l'installation a créé l'arborescence :
<code>tree /opt/lampp/ -d -L 1
/opt/lampp/
├── apache2
├── bin
├── build
├── cgi-bin
├── docs
├── error
├── etc
├── htdocs
├── icons
├── img
├── include
├── info
├── lib
├── libexec
├── licenses
├── logs
├── man
├── manual
├── modules
├── mysql
├── pear
├── php
├── phpmyadmin
├── proftpd
├── sbin
├── share
├── temp
└── var

28 directories</code>
Le répertoire htdocs est la racine du serveur
</note>
===== Configuration =====

==== Aliases suggérés ====

Pour vous simplifier la vie, créez des aliases en éditant ou créant le fichier **~/.bash_aliases** pour y écrire :
<code bash ~/.bash_aliases>
# Alias pour permettre sudo [un_alias]
alias sudo='sudo '

# Aliases pour Xampp
alias lampp='/opt/lampp/lampp'
alias ctlampp='/opt/lampp/manager-linux-x64.run'

# Aliases pour proftp
alias ftpasswd='/opt/lampp/bin/ftpasswd'
</code>

On obtient les raccourcis suivants :
^ Description ^ Raccourci ^ Effet |
^ lampp | sudo lampp ... | ->  sudo /opt/lampp/lampp ... |
^ panneau de contrôle | sudo ctlampp | ->  sudo /opt/lampp/manager-linux-x64.run |
^ gérer les utilisateurs de proftpd | sudo ftpasswd ... | ->  sudo /opt/lampp/bin/ftpasswd ... |

L'alias sudo='sudo ' permet d'utiliser les autres aliases en sudo, comme avec
<code>sudo lampp start</code>

Activez les aliases par :
<code>source ~/.bashrc</code>

==== Sécurisation ====

Pour changer les mots de passe de **MySQL**, MySQL/**phpMyAdmin** et **FTP**, lancez :
  sudo lampp security

qui donne le dialogue suivant pour créer des mots de passe :
  XAMPP:  Quick security check...
  XAMPP:  MySQL is accessable via network. 
  XAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes] 
  XAMPP:  Turned off.
  ...
  XAMPP:  The MySQL/phpMyAdmin user pma has no password set!!! 
  XAMPP: Do you want to set a password? [yes] yes
  XAMPP: Password: 
  ...
  XAMPP:  MySQL has no root passwort set!!! 
  XAMPP: Do you want to set a password? [yes] yes
  XAMPP:  Write the password somewhere down to make sure you won't forget it!!! 
  XAMPP: Password: 
  ...
  XAMPP:  The FTP password for user 'daemon' is still set to 'xampp'. 
  XAMPP: Do you want to change the password? [yes] yes
  XAMPP: Password: 
  ...
  XAMPP:  Done.

==== Créer un lanceur sous Gnome ====

Si l'installation n'a pas créé de lanceur, le mieux est d'utiliser [[:menulibre|MenuLibre]] pour en ajouter un.
===== Utilisation=====

==== Commandes ====

Avec les aliases suggérés plus haut, voici les commandes :
  * **Démarrer** le serveur :<code>sudo lampp start</code>
  * **Redémarrer** le serveur :<code>sudo lampp restart</code>
  * **Sécuriser** le serveur :<code>sudo lampp security</code>
  * **Arrêter** le serveur :<code>sudo lampp stop</code>
  * **Liste des options** possibles :<code>sudo lampp</code>
  * Lancer le **panneau de contrôle** :<code>sudo ctlampp</code>

Bien sûr, vous pourrez toujours utiliser ces commandes avec **/opt/lampp/lampp**.

==== Essai ====

Depuis un PC du réseau, connectez-vous au PC sur lequel tourne le serveur, par exemple [[http://192.168.0.7]] :
{{ :xampp:xampp-19.04-04.png?400 |}}

==== Mettre en place un site ====

Pour mettre en place un site sur xampp, utilisez un client FTP (par exemple [[:filezilla|Client FTP : FileZilla]]) pour déposer le répertoire du site ou de son installateur sur la racine **/opt/lampp/htdocs** (utilisateur : **daemon** + mot de passe que vous avez défini à la sécurisation).
==== Remarques importantes ====

Rappelons que ce serveur tout-en-un n'a pas d'autre prétention que d'être un petit serveur local de travail.

__Pour une mise en exploitation, mieux vaut se tourner vers un [[:lamp|Serveur web - LAMP]]__

Pour les curieux, dans XAMPP, les réglages fournis sont :
  * pour Apache (port 80) :
    * serveur : **localhost**
    * racine : **/opt/lampp/htdocs**
    * user : **daemon** (avec les mots de passe donnés à la phase de sécurisation)
    * Group : **daemon**
  * pour ProFTPd (port 21) :
    * serveur : **ProFTPD**, de type **standalone**
    * racine : **/opt/lampp/htdocs**
    * user : **daemon** (avec les mots de passe donnés à la phase de sécurisation)
    * Umask : **022**

<note tip>__Si vous voulez__, vous pouvez modifier l'utilisateur en www-data, changer le propriétaire de **/opt/lampp/htdocs**, mettre les permissions à 750 par exemple, etc. pour retrouver un serveur LAMP plus classique. Vous pouvez même utiliser des hôtes virtuels qui fonctionneront très bien.

<note important>Bien évidemment, gardez des permissions sûres pour ne pas ouvrir votre serveur de travail à tout le net !</note>

Mais dans ce cas, le plus simple est **__d'installer tout de suite un serveur LAMP et un serveur FTP__**.</note>
===== Désinstallation =====

Pour supprimer cette application, il suffit de supprimer le répertoire **/opt/lampp** :<code>sudo rm -R /opt/lampp/</code>ainsi que l'éventuel raccourci sur le bureau.

<note important>**__Attention !__**

Cela effacera tout vos sites  en  /opt/lampp/htdocs ... !

**__Commencez par recopier en lieu sûr (en mode sudo...) le répertoire  /opt/lampp/htdocs !__**</note>

===== Modifier l'emplacement de la racine du serveur Apache =====

Une méthode simple est d'ajouter un montage loop par une ligne dans le fichier /etc/fstab :
  /home/USER/www	/opt/lampp/htdocs	none	bind	0	0

Désormais, toute référence à /opt/lampp/htdocs sera redirigée vers le répertoire voulu (à créer au besoin)
===== Voir aussi =====

  * **(fr)** [[https://www.apachefriends.org/fr/index.html|Site officiel du logiciel xampp]]
  * **(en)** [[https://sourceforge.net/projects/gui-multi-xampp/|Utiliser une GUI et plusieurs versions de Xampp en parallèle]]
  * **(fr)** [[http://doc.frapp.fr/doku.php?id=logiciel:internet:http:xampp:start0|Une autre approche, simple, de l'installation de Xampp]]

----

//Contributeurs principaux : [[:utilisateurs:Ju]], [[:utilisateurs:Darkagonik], [[:utilisateurs:alain17]], [[:utilisateurs:Flix]], [[:utilisateurs:mydjey]], [[:utilisateurs:Eliastik]], [[utilisateurs:jamaique]].//

//Basé sur [[www.apachefriends.org/fr/index.html|Site officiel du logiciel xampp]] par ApacheFriends.//
